Lutter contre les spams dans WordPress

Cet article répond à une question posée par email. Je pense qu’elle peut intéresser un grand nombre d’utilisateurs.

La question

J’ai depuis deux jours des spams (pub) qui envahissent ma boîte mail. J’ai tenté de voir s’il y avait des choses à mettre à jour, ou filtres spams à activer… Tout me semble en ordre. C’est peut-être dû à un changement que j’ai fait il y a quelques jours dans la partie “contact form”. La version que j’avais (plug in je crois) ne s’affichait plus correctement. Alors j’ai mis la version offerte par WordPress.

La réponse

Différentes possibilités:

a) Des spams envoyés directement à votre adresse email:

Solutions:

Vérifier si votre adresse email est lisible “en clair” sur une page de votre site.

Si c’est le cas, il faut la protéger contre les robots de spam (en l’écrivant de manière détournée, ou en utilisant un script1).

b) Des spams sous forme de commentaires à vos articles.

Pour réduire ce type de spam:

spam-comments

  • Utiliser un plugin qui va filtrer les commentaires spams : il y a p.ex. Akismet ou AntispamBee.

À noter qu’Akismet est payant pour les sites commerciaux.

  • Fermer les commentaires, en se réservant la possibilité de les ouvrir au cas par cas. Le réglage par défaut des commentaires dans WordPress est “ouvert”.

Pour changer le réglage par défaut:

  • Aller dans le menu Réglages > Discussion.
  • Sous “Réglages par défaut des articles”, désactiver l’option “Réglages par défaut des articles…”.

desactiver-commentaires

Ce réglage va s’appliquer à tous les futurs articles que vous créez.

Pour fermer les commentaires sur des articles déjà publiés:

  • Lister vos articles en allant sous Articles > Tous les articles.
  • Pour les articles étant la cible de spams, cliquer sur “Modification Rapide”, et décocher la case “Autoriser les commentaires”.

c) Des spams envoyés via le formulaire de contact de votre site.

Selon le formulaire utilisé, il sera peut-être possible d’ajouter un plugin anti-spam.

Il faut commencer par déterminer quel formulaire vous utilisez. Il n’existe pas de formulaire “par défaut” dans WordPress – il s’agit forcément d’une fonctionnalité ajoutée par un plugin ou un thème. Les cas possibles:

Dans tous les cas, vous pouvez inspecter la page des réglages de votre formulaire de contact, pour voir si une protection anti-spam peut être activée.

Voir ici p.ex. comment utiliser l’antispam Akismet avec Contact Form 7: http://contactform7.com/spam-filtering-with-akismet/

Pour le formulaire de contact de Jetpack, si Akismet est activé, tous les messages seront filtrés (c’est automatique, pas de réglage à effectuer)2.


  1. Un exemple de script se trouve dans mon starter-theme Tabula Rasa
  2. Selon certaines infos, le filtrage du formulaire de contact aurait toujours lieu, même si Akismet n’est pas activé.